package leetcode101.ch3;

//LC 680  验证回文字符串 Ⅱ 最多删除一个字符。判断是否能成为回文字符串
public class ValidPalindromeII {
    public boolean validPalindrome(String s) {
        int l = 0, r = s.length() - 1;
        while (l < r) {
            if (s.charAt(l) != s.charAt(r)) {
                //subString方法是左闭右开，右边界要加一
                return valid(s.substring(l, r - 1 + 1)) || valid(s.substring(l + 1, r + 1));
            } else {
                l++;
                r--;
            }
        }
        return true;
    }

    private boolean valid(String s) {
        int l = 0, r = s.length() - 1;
        while (l < r) {
            if (s.charAt(l) != s.charAt(r)) {
                return false;
            }else {
                l++;
                r--;
            }
        }
        return true;
    }
}
